package com.xmtlxx.oms.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.xmtlxx.common.annotation.ExcelDictFormat;
import com.xmtlxx.common.convert.ExcelDictConvert;
import com.xmtlxx.common.core.domain.BaseEntity;
import com.xmtlxx.system.domain.SysOss;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;


/**
 * 暂存登记视图对象 t_staging
 *
 * @author xmtlxx
 * @date 2022-11-20
 */
@Data
@ApiModel("暂存登记视图对象")
@ExcelIgnoreUnannotated
public class StagingVo extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @ExcelProperty(value = "主键ID")
    @ApiModelProperty("主键ID")
    private String id;

    /**
     * 单位
     */
    @ExcelProperty(value = "单位")
    @ApiModelProperty("单位")
    private Long deptId;

    /**
     * 暂存类型
     */
    @ExcelProperty(value = "暂存类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "oms_staging_type")
    @ApiModelProperty("暂存类型")
    private String type;

    /**
     * 登记时间
     */
    @ExcelProperty(value = "登记时间")
    @ApiModelProperty("登记时间")
    private Date registerTime;

    /**
     * 登记人
     */
    @ExcelProperty(value = "登记人")
    @ApiModelProperty("登记人")
    private String registerer;

    /**
     * 仓库ID
     */
    @ExcelProperty(value = "仓库ID")
    @ApiModelProperty("仓库ID")
    private String storeId;

    /**
     * 暂存原因
     */
    @ExcelProperty(value = "暂存原因")
    @ApiModelProperty("暂存原因")
    private String remark;

    /**
     * 附件
     */
    @ExcelProperty(value = "附件")
    @ApiModelProperty("附件")
    private String pics;

    /**
     * 状态
     */
    @ExcelProperty(value = "状态")
    @ApiModelProperty("状态")
    private String status;

    /**
     * 调用时间
     */
    @ExcelProperty(value = "调用时间")
    @ApiModelProperty("调用时间")
    private Date transferTime;

    /**
     * 调用原因
     */
    @ExcelProperty(value = "调用原因")
    @ApiModelProperty("调用原因")
    private String transferRemark;

    /**
     * 归还时间
     */
    @ExcelProperty(value = "归还时间")
    @ApiModelProperty("归还时间")
    private Date returnTime;

    /**
     * 归还状态
     */
    @ExcelProperty(value = "归还状态")
    @ApiModelProperty("归还状态")
    private String  returnStatus;

    /**
     * 所队移交状态
     */
    @ExcelProperty(value = "移交状态")
    @ApiModelProperty("移交状态")
    private String transferStatus;

    /**
     * 区县移交状态
     */
    @ExcelProperty(value = "区县移交状态")
    @ApiModelProperty("区县移交状态")
    private String countyTransferStatus;



    /**
     * 移交部门
     */
    @ExcelProperty(value = "移交部门")
    @ApiModelProperty("移交部门")
    private Long transferDept;

    /**
     * 移交仓库
     */
    @ApiModelProperty("移交仓库")
    private String transferStore;


    /**
     * 物品编号
     */
    @ExcelProperty(value = "物品编号")
    private String pno;

    /**
     * 案件编号
     */
    private String caseNo;

    /**
     * 物品名称
     */
    private String name;

    /**
     * 分类ID
     */
    private String classifyId;

    /**
     * 二级分类
     */
    private String secondClassifyId;

    /**
     * 三级分类
     */
    private String thirdClassifyId;

    /**
     * 财物特征
     */
    private String feature;

    /**
     * 扣押单位编码
     */
    private Long officeId;

    /**
     * 保管场所
     */
    @ExcelProperty(value = "所属单位")
    private String transferDeptName;

    /**
     * 单位
     */
    private String unit;

    /**
     * 数量
     */
    private String nums;

    /**
     * 接收数量
     */
    private Long receiveNums;

    private String action;//判断是否需要提交到财物列表

    private List<TaskDtlVo> dtls;

    private String deptName;

    private String transferName;

    private String officeName;

    private String storeName;

    private List<SysOss> oss;

    private String classifyName;

    private String secondClassifyName;

    private String thirdClassifyName;

    private String updateName;

    private String picPathes;

    private String propertyTransferStatus;

    /**
     * 保管位置
     */
    private String warehouseLocation;

    /**
     * 保管仓库
     */
    private String custodianPlace;

    /**
     * 暂存/调用日期
     */
    @ApiModelProperty("暂存/调用日期")
    private Date storageDaysTime;

    /**
     * 暂存/调用天数
     */
    @ApiModelProperty("暂存/调用日期")
    private Integer storageDays;

    private Integer isCar;

    @ApiModelProperty("有无车钥匙")
    private String carKey;

    @ApiModelProperty("有无行驶证")
    private String driveLicen;

    @ApiModelProperty("有无车辆登记书")
    private String registerBook;

}
